#!/bin/bash

# 初始化 JVM 参数和 Spring Boot 参数
debug_opts=""

# 获取环境变量 ENVIRONMENT 的值，默认为 prod
ENVIRONMENT=${ENVIRONMENT:-prod}

# 根据环境变量 ENVIRONMENT 的值，设置额外的参数
if [ "$ENVIRONMENT" != "prod" ]; then
  # 如果不是生产环境，添加调试参数并暴露端口 5005
  debug_opts="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
  echo "Remote debugging enabled on port 5005"
else
  echo "Remote debugging not enabled"
fi

java_opts=""
spring_opts=""

# 遍历所有传入的参数
for arg in "$@"; do
  case $arg in
    --*)
      # 如果是 -- 开头的参数，识别为 Spring Boot 参数
      spring_opts="$spring_opts $arg"
      ;;
    -*)
      # 如果是单个 - 开头的参数，识别为 JVM 参数
      java_opts="$java_opts $arg"
      ;;
    *)
      # 其他参数也添加到 java_opts
      java_opts="$java_opts $arg"
      ;;
  esac
done

# 打印完整的命令
full_command="java $java_opts $debug_opts -jar /app/app.jar $spring_opts"
echo "Executing command: "
echo "$full_command"

# 启动 Java 应用程序，将 JVM 参数和 Spring Boot 参数传递到正确的位置
java  $java_opts $debug_opts -jar /app/app.jar $spring_opts